package writtenTraining.day16;

import java.util.*;

/**
 * day16:(1)模拟：QR6 字符串替换
 */

public class StringFormat {
    public String formatString(String A, int n, char[] arg, int m) {
        // write code here
        // 模拟
        StringBuilder ret = new StringBuilder();

        int pos = 0;
        for(int i = 0; i < n; i++) {
            char ch = A.charAt(i);
            // 替换 % s
            if(ch == '%') {
                ret.append(arg[pos]);
                pos++;
                i++;
            } else {
                ret.append(ch);
            }
        }

        // 尾追
        for(;pos < m; pos++) {
            ret.append(arg[pos]);
        }

        // 返回
        return ret.toString();
    }
}


/**
 * day16:(2)模拟+ 质数判断：[编程题]神奇数
 */


 class Main2 {
    public static void main(String[] args) {
        // 模拟 + 质数判断

        Scanner in = new Scanner(System.in);
        int a = in.nextInt(), b = in.nextInt();

        int ret = 0;
        for(int i = a; i <= b; i++) {
            // 统筹获取每一位
            List<Integer> list = new ArrayList<>();
            int num = i;
            // 得到每一位数字
            while(num != 0) {
                list.add(num % 10);
                num /= 10;
            }

            boolean c = false;
            // 遍历查找
            for(int j = 0; j < list.size(); j++) {
                int k = 0;
                for(; k < list.size(); k++) {
                    if(k != j
                            && list.get(j) != 0
                            && check(list.get(j), list.get(k))) {
                        ret++;
                        c = true;
                        break;
                    }
                }
                if(c) {
                    break;
                }
            }
        }
        System.out.println(ret);
    }

    // 检查两个数拼接后是否是质数
    private static boolean check(int ten, int one) {
        // 拼接两个数
        int num = ten * 10 + one;

        for(int i = 2; i <= Math.sqrt(num) ; i++) {
            if(num % i == 0) {
                return false;
            }
        }

        return true;
    }
}




/**
 * day16:(3):滑动窗口：HJ63 DNA序列
 */


 class Main {
    public static void main(String[] args) {
        // 滑动窗口

        // 输入
        Scanner in = new Scanner(System.in);

        String s = in.next();
        char[] str = s.toCharArray();
        int n = in.nextInt();

        // 特判
        if (n > str.length) {

            return ;
        }

        int begin = 0, end = 0;
        double div = 0.0;
        double count = 0;

        // 滑动窗口
        for (int left = 0, right = 0; right < str.length; right++) {
            // 入窗口
            if (str[right] == 'C' || str[right] == 'G') {
                count++;
            }

            while (right - left + 1 > n) {

                // 出窗口
                if (str[left] == 'C' || str[left] == 'G') {
                    count--;
                }
                left++;
            }
            // 更新结果
            double t = count / n;
            if (right - left + 1 == n && t > div) {
                div = t;
                begin = left;
                end = right;
            }


        }

        System.out.println(s.substring(begin, end + 1));
    }
}